Graphic user interfaces (GUIs) have become the accepted means for interaction between computer programs and their users. A variety of tools are known in the art, such as Visual Basic and Visual C++, for use by computer application developers in designing a GUI. These tools provide standard building blocks, including controls, such as menu bars, push buttons, sliders, check boxes and knobs, as well as areas for text input. To create a GUI, the application developer selects the appropriate building blocks and arranges them on the screen. Each of the building blocks is used to invoke an appropriate function in the application program.
A “skin” can be used to change the visual appearance of the GUI, without changing the underlying functionality. The skin is a graphic file that provides a visual cover for the elements of the GUI. For example, Stardock (www.stardock.com) offers a skin utility known as “WindowBlinds,” which allows the user to change the style of title bars, buttons, toolbars and other elements of the Microsoft Windows GUI. Winamp (www.winamp.com) offers a computer media player with many different, interchangeable skins. Users can also create their own skins using a suitable graphics editor. Soft Shape (www.softshape.com) offer ActiveSkin, an ActiveX control that changes the visual appearance of forms and dialogs. In all cases, however, the skin is tied to a template and must line up geometrically with the underlying functional user interface elements. Consequently, the GUI designer has only limited flexibility in choosing the shapes, sizes and relative positions of the elements of the interface.
After the priority date of the present invention, the Quintessential CD “QCD 2.0 Player” was released. This player has a GUI that allows users to replace its entire skin without regard to shape, size or position of the original user interface supplied with the player. Features of QCD 2.0 skins are described in a document entitled “Designing User Interfaces (‘Skins’) for the QCD 2.0 Player,” available at www.quinnware.com, which is incorporated herein by reference. Among the features of the skin implementations described in this document is the use of color coding to define “maps” that describe the location and shape of smaller controls that are overlaid on top of larger controls. Predefined colors tell QCD 2.0 what the associated pixels are supposed to mean in terms of user interface functions.